www.gusucode.com > VC++ 颜色空间转换以及各种颜色变换源码程序 > VC++ 颜色空间转换以及各种颜色变换源码程序/code/ColorProcess/GrayDlg.cpp
//Download by http://www.NewXing.com // GrayDlg.cpp : implementation file // #include "stdafx.h" #include "Dib.h" #include "ColorProcess.h" #include "GrayDlg.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CGrayDlg dialog CGrayDlg::CGrayDlg(CWnd* pParent /*=NULL*/) : CDialog(CGrayDlg::IDD, pParent) { //{{AFX_DATA_INIT(CGrayDlg) m_strWeightR = _T("0.30"); m_strWeightG = _T("0.59"); m_strWeightB = _T("0.11"); //}}AFX_DATA_INIT m_nMethod = MEAN_GRAY; m_fWeightR = atof((LPCSTR)m_strWeightR); m_fWeightG = atof((LPCSTR)m_strWeightG); m_fWeightB = atof((LPCSTR)m_strWeightB); } void CGrayDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CGrayDlg) DDX_Text(pDX, IDC_EDIT1, m_strWeightR); DDX_Text(pDX, IDC_EDIT2, m_strWeightG); DDX_Text(pDX, IDC_EDIT3, m_strWeightB); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CGrayDlg, CDialog) //{{AFX_MSG_MAP(CGrayDlg) ON_BN_CLICKED(IDC_RADIO1, OnRadio1) ON_BN_CLICKED(IDC_RADIO2, OnRadio2) ON_BN_CLICKED(IDC_RADIO3, OnRadio3) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CGrayDlg message handlers void CGrayDlg::OnRadio1() { m_nMethod = MEAN_GRAY; GetDlgItem(IDC_EDIT1)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT2)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT3)->EnableWindow(FALSE); } void CGrayDlg::OnRadio2() { m_nMethod = MAXIMUM_GRAY; GetDlgItem(IDC_EDIT1)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT2)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT3)->EnableWindow(FALSE); } void CGrayDlg::OnRadio3() { m_nMethod = WEIGHT_GRAY; GetDlgItem(IDC_EDIT1)->EnableWindow(TRUE); GetDlgItem(IDC_EDIT2)->EnableWindow(TRUE); GetDlgItem(IDC_EDIT3)->EnableWindow(TRUE); } BOOL CGrayDlg::OnInitDialog() { CDialog::OnInitDialog(); ((CButton *)GetDlgItem(IDC_RADIO1))->SetCheck(1); GetDlgItem(IDC_EDIT1)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT2)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT3)->EnableWindow(FALSE); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void CGrayDlg::OnOK() { UpdateData(TRUE); m_fWeightR = atof((LPCSTR)m_strWeightR); m_fWeightG = atof((LPCSTR)m_strWeightG); m_fWeightB = atof((LPCSTR)m_strWeightB); CDialog::OnOK(); }